Skip to content

Conversation

softwareengineerprogrammer
Copy link
Owner

@softwareengineerprogrammer softwareengineerprogrammer commented Sep 18, 2025

Description

Addresses NREL#421 for SAM Economic Models

image image image image image

Testing & Verification

  1. Added new unit tests
  2. Added new example example_SAM-single-owner-PPA-4.: 50 MWe with Royalties
  3. Tested in web interface
  4. Manually tested/sanity-checked
    1. image

TODO:

  1. FIXME incorrect calculation:
    royalty_rate = model.economics.royalty_rate.quantity().to('dimensionless').magnitude
    ppa_revenue_row = _cash_flow_profile_row(cash_flow, 'PPA revenue ($)')
    royalties_unit = sam_economics.royalties_opex.CurrentUnits.value.replace('/yr', '')
    sam_economics.royalties_opex.value = [
    quantity(x * royalty_rate, 'USD').to(royalties_unit).magnitude for x in ppa_revenue_row
    ]
  2. CHANGELOG entry
  3. Validate that excluding Year 0 (0 revenue) is correct for calculating NPV
    # ignore pre-revenue year(s) (e.g. Year 0)
    pre_revenue_years_slice_index = model.surfaceplant.construction_years.value
    average_annual_royalties = np.average(
    self.sam_economics_calculations.royalties_opex.value[pre_revenue_years_slice_index:]
    )
  4. Slice based on pre-revenue (construction) years instead of hardcoding: a60199c
  5. Clarify taxes for royalties: a0d0c38
  6. Add a test for combined royalties and add-ons: a782cd7
  7. Royalties schedule (instead of fixed value)
  8. Update documentation
  9. Royalty collector economics
  10. Include annual average in GEOPHIRES OPEX (separate line item + include in total)
  11. Reconcile with fixed total OPEX

…ty collector revenue/NPV/etc., update documentation, add more unit tests
@softwareengineerprogrammer softwareengineerprogrammer added the enhancement New feature or request label Sep 18, 2025
@softwareengineerprogrammer softwareengineerprogrammer changed the title Royalties [v3.9.58] Royalties [v3.9.59] Sep 18, 2025
@softwareengineerprogrammer
Copy link
Owner Author

Rebased: #107

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant